{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "loose-novel",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import json\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "from scipy.stats import norm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "numerous-taste",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"../轿车_top_2020.csv\",usecols=[\"series\",\"officePrice\",\"salesSum\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "corporate-hopkins",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       9.98-14.49万\n",
       "1      11.99-12.59万\n",
       "2       9.99-15.89万\n",
       "3      10.98-15.98万\n",
       "4        2.88-4.86万\n",
       "           ...     \n",
       "187    21.57-22.77万\n",
       "188            暂无报价\n",
       "189    22.28-23.98万\n",
       "190     4.89-15.18万\n",
       "191            暂无报价\n",
       "Name: officePrice, Length: 192, dtype: object"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['officePrice']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "sorted-confidence",
   "metadata": {},
   "outputs": [],
   "source": [
    "list = []\n",
    "i = 0\n",
    "for price in data['officePrice']:\n",
    "    \n",
    "    p = price.split(\"-\")\n",
    "    if len(p)<2:\n",
    "        if price == \"暂无报价\":\n",
    "            result = 0\n",
    "        else:\n",
    "            result = float(price.replace(\"万\",\"\"))\n",
    "            list.append(result)\n",
    "    else:              \n",
    "        result = (float(p[0])+float(p[1].replace(\"万\",\"\")))/2\n",
    "        list.append(result)\n",
    "    \n",
    "#     print(price,round(result, 2))\n",
    "    data.loc[:]['officePrice'][i]=result\n",
    "    i = i+1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "surgical-symbol",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>series</th>\n",
       "      <th>officePrice</th>\n",
       "      <th>salesSum</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>轩逸</td>\n",
       "      <td>12.235</td>\n",
       "      <td>538680</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>英朗</td>\n",
       "      <td>12.290</td>\n",
       "      <td>295857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>朗逸</td>\n",
       "      <td>12.940</td>\n",
       "      <td>417332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>卡罗拉</td>\n",
       "      <td>13.480</td>\n",
       "      <td>343418</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>宏光MINIEV</td>\n",
       "      <td>3.870</td>\n",
       "      <td>119255</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>标致508L新能源</td>\n",
       "      <td>22.170</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>188</th>\n",
       "      <td>标致308</td>\n",
       "      <td>0</td>\n",
       "      <td>370</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>189</th>\n",
       "      <td>起亚K5新能源</td>\n",
       "      <td>23.130</td>\n",
       "      <td>427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>景逸S50</td>\n",
       "      <td>10.035</td>\n",
       "      <td>432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>传祺GA5</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>192 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        series officePrice  salesSum\n",
       "0           轩逸      12.235    538680\n",
       "1           英朗      12.290    295857\n",
       "2           朗逸      12.940    417332\n",
       "3          卡罗拉      13.480    343418\n",
       "4     宏光MINIEV       3.870    119255\n",
       "..         ...         ...       ...\n",
       "187  标致508L新能源      22.170        17\n",
       "188      标致308           0       370\n",
       "189    起亚K5新能源      23.130       427\n",
       "190      景逸S50      10.035       432\n",
       "191      传祺GA5           0         5\n",
       "\n",
       "[192 rows x 3 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ahead-cylinder",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x14e1c6d67f0>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(data.officePrice,data.salesSum)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "trained-devices",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_X = data.officePrice\n",
    "data_y = data.salesSum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "olympic-emperor",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0      12.235\n",
       " 1      12.290\n",
       " 2      12.940\n",
       " 3      13.480\n",
       " 4       3.870\n",
       "         ...  \n",
       " 187    22.170\n",
       " 188         0\n",
       " 189    23.130\n",
       " 190    10.035\n",
       " 191         0\n",
       " Name: officePrice, Length: 192, dtype: object,\n",
       " 0      538680\n",
       " 1      295857\n",
       " 2      417332\n",
       " 3      343418\n",
       " 4      119255\n",
       "         ...  \n",
       " 187        17\n",
       " 188       370\n",
       " 189       427\n",
       " 190       432\n",
       " 191         5\n",
       " Name: salesSum, Length: 192, dtype: int64)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_X,data_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "trying-demographic",
   "metadata": {},
   "outputs": [],
   "source": [
    "model=LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "christian-compound",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(data_X.values.reshape(-1,1),data_y.values.reshape(-1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "broadband-incidence",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[586.01131608]]\n",
      "[38025.74072828]\n",
      "{'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 'normalize': False, 'positive': False}\n",
      "0.0073578783944698856\n"
     ]
    }
   ],
   "source": [
    "print(model.coef_)      #如果y=0.1x+0.3   则此行输出的结果为0.1\n",
    "print(model.intercept_)             #此行输出的结果为0.3\n",
    "print(model.get_params())       #模型定义时定义的参数，如果没有定义则返回默认值\n",
    "print(model.score(data_X.values.reshape(-1,1),data_y.values.reshape(-1,1)))   #给训练模型打分，注意用在LinearR中使用R^2 conefficient of determination打分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "auburn-switch",
   "metadata": {},
   "outputs": [],
   "source": [
    "x=np.array(list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "suffering-coaching",
   "metadata": {},
   "outputs": [],
   "source": [
    "mu =np.mean(x)\n",
    "sigma =np.std(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "altered-forge",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17.417982954545455, 10.836660607356292)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mu,sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "seventh-tension",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "num_bins = 60 #直方图柱子的数量 \n",
    "n, bins, patches = plt.hist(x, num_bins,density=1, alpha=0.75) \n",
    "#直方图函数，x为x轴的值，normed=1表示为概率密度，即和为一，绿色方块，色深参数0.5.返回n个概率，直方块左边线的x值，及各个方块对象 \n",
    "y = norm.pdf(bins, mu, sigma)#拟合一条最佳正态分布曲线y \n",
    " \n",
    "plt.grid(True)\n",
    "plt.plot(bins, y, 'r--') #绘制y的曲线 \n",
    "plt.xlabel('values') #绘制x轴 \n",
    "plt.ylabel('Probability') #绘制y轴 \n",
    "plt.title('Histogram : $\\mu$=' + str(round(mu,2)) + ' $\\sigma=$'+str(round(sigma,2)))  #中文标题 u'xxx' \n",
    "#plt.subplots_adjust(left=0.15)#左边距 \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "animal-lancaster",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "176"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "incorrect-weekly",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
